Disciplined Inconsistency

نویسندگان

  • Brandon Holt
  • James Bornholt
  • Irene Zhang
  • Dan Ports
  • Mark Oskin
  • Luis Ceze
چکیده

Distributed applications and web services, such as online stores or social networks, are expected to be scalable, available, responsive, and fault-tolerant. To meet these steep requirements in the face of high round-trip latencies, network partitions, server failures, and load spikes, applications use eventually consistent datastores that allow them to weaken the consistency of some data. However, making this transition is highly error-prone because relaxed consistency models are notoriously difficult to understand and test. In this work, we propose a new programming model for distributed data that makes consistency properties explicit and uses a type system to enforce consistency safety. With the Inconsistent, Performance-bound, Approximate (IPA) storage system, programmers specify performance targets and correctness requirements as constraints on persistent data structures and handle uncertainty about the result of datastore reads using new consistency types. We implement a prototype of this model in Scala on top of an existing datastore, Cassandra, and use it to make performance/correctness tradeoffs in two applications: a ticket sales service and a Twitter clone. Our evaluation shows that IPA prevents consistency-based programming errors and adapts consistency automatically in response to changing network conditions, performing comparably to weak consistency and 2-10× faster than strong consistency.

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

On Localities of Knowledge Inconsistency

Inconsistency is commonplace in the real world in long-term memory and knowledge based systems. Managing inconsistency is considered a hallmark of the plasticity of human intelligence. Belief revision is an important mental process that underpins human intelligence. To facilitate belief revision, it is necessary to know the localities and contexts of inconsistency and how different types of inc...

متن کامل

On Localities of Knowledge Inconsistency

Inconsistency is commonplace in the real world in long-term memory and knowledge based systems. Managing inconsistency is considered a hallmark of the plasticity of human intelligence. Belief revision is an important mental process that underpins human intelligence. To facilitate belief revision, it is necessary to know the localities and contexts of inconsistency and how different types of inc...

متن کامل

On Localities of Knowledge Inconsistency

Inconsistency is commonplace in the real world in long-term memory and knowledge based systems. Managing inconsistency is considered a hallmark of the plasticity of human intelligence. Belief revision is an important mental process that underpins human intelligence. To facilitate belief revision, it is necessary to know the localities and contexts of inconsistency and how different types of inc...

متن کامل

On Localities of Knowledge Inconsistency

Inconsistency is commonplace in the real world in long-term memory and knowledge based systems. Managing inconsistency is considered a hallmark of the plasticity of human intelligence. Belief revision is an important mental process that underpins human intelligence. To facilitate belief revision, it is necessary to know the localities and contexts of inconsistency and how different types of inc...

متن کامل

The characteristics of physicians disciplined by professional colleges in Canada

BACKGROUND The identification of health care professionals who are incompetent, impaired, uncaring or have criminal intent has received increasing attention in recent years. These individuals are often subject to disciplinary action by professional licensing authorities. To date, no national data exist for Canadian physicians disciplined for professional misconduct. We sought to describe the ch...

متن کامل

Teaching Disciplined Software Development_author_version_prefinal

Discipline is an essential prerequisite for the development of large and complex software-intensive systems. However, discipline is also important on the level of individual development activities. A major challenge for teaching disciplined software development is to enable students to experience the benefits of discipline and to overcome the gap between real professional scenarios and scenario...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2015